package br.com.duosoftware.orcamento.daos;

import br.com.duosoftware.orcamento.entidades.FonteDeRecursoDespesa;
import br.com.duosoftware.orcamento.entidades.Orcamento;
import java.util.List;

/**
 *
 * @author Renato
 *
 */
public class FonteDeRecursoDespesaDAO extends DAOGenerico {

    public void salvarOuAtualizar(FonteDeRecursoDespesa fonteDeRecursoDespesa) {
        salvarOuAtualizarPojo(fonteDeRecursoDespesa);
    }

    public void excluir(FonteDeRecursoDespesa fonteDeRecursoDespesa) {
        excluirPojo(fonteDeRecursoDespesa);
    }

    public FonteDeRecursoDespesa getfonteDeRecursoDespesaPorId(Integer id) {
        return getPojo(FonteDeRecursoDespesa.class, id);
    }

    public List<FonteDeRecursoDespesa> listarfontesDeRecursoDespesa() {
        return getPojos("FROM fonteDeRecursoDespesa fonteDeRecursoDespesa ORDER BY fonteDeRecursoDespesa.id");
    }
    
    public List<FonteDeRecursoDespesa> listarFontesDeRecursoDespesa(Orcamento orcamento) {
        return getPojos("FROM FonteDeRecursoDespesa fonteDeRecursoDespesa "
                      + "WHERE fonteDeRecursoDespesa.orcamento.id = ? "
                      + "ORDER BY fonteDeRecursoDespesa.id", orcamento.getId());
    }
    
    public double obterSomaDoValorDasFontesDeDespesa(Orcamento orcamento) {

        double resultado = 0.0;

        try {

            resultado = getPojoCriterio("SELECT SUM(fonteDeRecursoDespesa.valorFonteRecurso) "
                    + "FROM FonteDeRecursoDespesa fonteDeRecursoDespesa "
                    + "WHERE fonteDeRecursoDespesa.orcamento.id = ?", orcamento.getId());

        } catch (Exception e) {

        }
        
        return resultado;

    }

}
